#ifndef __TEXTBOX__
#define __TEXTBOX__

#include <stdio.h>
#include <stdlib.h>

#include <config.h>
#include <types.h>
#include <gobjs.h>
#include <page.h>
#include <event.h>

typedef struct textbox {
    GOBJ *body;
    u8 max_len;
    BOOLEAN editable;
    BOOLEAN focused;
    void (*onFocus)(void *);
    void (*onUnfocus)(void *);
} TextBox;

TextBox *TextBox_Create(u32 x, u32 y, u32 width, u32 height);
int TextBox_AddtoPage(PAGE *p, TextBox *t);
inline void TextBox_SetLength(TextBox *t, u8 max_len);
inline void TextBox_SetEditable(TextBox *t, BOOLEAN e);
void TextBox_SetBackgroundColor(TextBox *t, COLOR *c);
void TextBox_SetFocused(TextBox *t, BOOLEAN f);
int TextBox_SetText(TextBox *t, const unicode_t *string, int size, u8 align);
inline unicode_t *TextBox_GetText(TextBox *t);
int TextBox_Update(TextBox *t);

#endif
